#include<iostream>
#include<cstring>
#include<string>
using namespace std;
const int maxn = 1005;
int dp[maxn],t,m,x,y;
string s;
int num[maxn];

void read(){
	int cnt=1,tmp=0;
	char c;
	for(int i=0;i<s.size();i++){
		c=s[i];
		if(c==','){
			num[cnt++]=tmp;
			tmp=0;
		}else if((c-'0')>=0 && (c-'0')<=9){
			tmp=tmp*10+c-'0';
		}
	}
	num[cnt]=tmp;
	n=cnt;
}

int main(){
    cin>>t>>m;
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        for(int j=t;j>=x;j--){
            dp[j]=max(dp[j],dp[j-x]+y);
        }
    }
    cout<<dp[t]<<endl;
    return 0;
}
